import dataset
import numpy as np
import plot_utils
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD 
# dense 是一个全连接层 有多少连多少 
# 几个输入 几个神经元 全连上是一个一层的神经网络  

m = 100
X,Y = dataset.get_beans4(m)
plot_utils.show_3d_scatter(X,Y)

#创建模型
model = Sequential()
#创建两个隐藏层神经元，使用sigmoid激活函数
model.add(Dense(units=2,activation='sigmoid', input_dim=2))
#创建一个输出层神经元，使用sigmoid激活函数
model.add(Dense(units=1,activation='sigmoid'))
#告诉keras使用均方误差代价函数和随机梯度下降算法(SGD)
model.compile(loss='mean_squared_error',
            optimizer=SGD(learning_rate=0.05),# Learning rate
            metrics=['accuracy'])
#start training
model.fit(X, Y, epochs=5000, batch_size=10)
#predict function
pres = model.predict(X)
#同时绘制散点图和预测曲线
plot_utils.show_scatter_surface(X,Y,model)